const multipart = require('connect-multiparty');
const multipartMiddleware = multipart();
const OSS = require('ali-oss')

const client = new OSS({
  // yourregion填写Bucket所在地域。以华东1（杭州）为例，Region填写为oss-cn-hangzhou。
  region: 'oss-cn-beijing',
  // 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
  accessKeyId: 'LTAI5t7F1amDgM6Ts7drn74N',
  accessKeySecret: 'XTb1jFlEpCiAFbyVCq0y80qMlQhjJJ',
  // 填写Bucket名称。
  bucket: 'qkofnolewndwolmdwlq',
});

client.useBucket("qkofnolewndwolmdwlq");

module.exports = app => {
  app.post('/api/upload', multipartMiddleware, async (req, res) => {
    // 1. 接收文件
    const {
      name,
      path
    } = req.files.file

    try {
      // 2. 上传oss
      const resp = await client.put(name, path);

      res.send({
        code: 200,
        message: '上传成功',
        data: resp
      })
    } catch (error) {
      console.log(error)
      res.send({
        code: 400,
        message: '上传失败',
        error: error
      })
    }
  })


  app.get('/api/upload/list', async (req, res) => {
    const resp = await client.list();
    res.send({
      code: 200,
      data: resp,
      message: '列表请求成功'
    })
  })

  app.delete('/api/upload', async (req, res) => {
    const { name } = req.query;
  
    try {
      const resp = await client.delete(name);
      res.send({
        code: 200,
        data: resp,
        messsage: '删除成功'
      })
    } catch (error) {
      res.send({
        code: 400,
        error: error,
        message: '删除失败'
      })
    }
  })
}